<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 作用1 ： 可以用来展开数组   合并数组
        let arr1 = [1,2,3,4,5]
        let arr2 = [6,7,8,9,10]
        // console.log(...arr1);        // 1 2 3 4 5
        let arr3 = [...arr1, ...arr2]
        // console.log(arr3);          // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


        // 作用2 ： 函数传参
        function sum(...numbers) {
            // 接收到的参数是一个数组的集合
            return numbers.reduce((preValue, currentValue) => {
                return preValue + currentValue
            })
        }
        console.log(sum(1,23,4,5,6));


        // 作用3 ： 拷贝对象（浅拷贝）
        let obj = {name: 'st', age: 18}
        // console.log(...obj);  // 报错  展开运算符不能用来展开对象
        let val = {...obj}      // 可以用一个花括号的形式包裹
        obj.name = 'stt'
        console.log(val);
    </script>
</body>
</html>